// Type definitions for testing
export interface UserData {
    id: string;
    name: string;
    email: string;
    age?: number;
    preferences: {
        theme: 'light' | 'dark';
        notifications: boolean;
    };
}

export interface ApiResponse<T> {
    data: T;
    status: string;
    timestamp: number;
    metadata?: {
        page?: number;
        total?: number;
    };
}

export type Result<T, E = Error> = 
    | { success: true; data: T }
    | { success: false; error: E };

export enum HttpStatus {
    OK = 200,
    CREATED = 201,
    BAD_REQUEST = 400,
    UNAUTHORIZED = 401,
    NOT_FOUND = 404,
    INTERNAL_SERVER_ERROR = 500
}